This invention is concerned with keyboard crosspoint encoders. This type of device has a plurality of facing rows and columns of conductors which are normally held in spaced relation. Each intersection of a row and column provides a crosspoint switch which can be closed by pressing the conductors together. Typically, the conductors are formed on sheets of flexible material so that one conductor can contact another when the flexible sheet is subjected to external pressure. When the pressure is removed the sheet returns to its normal position with the conductors in non-contacting relation. The keyboard may include actuators which are disposed on top of the encoder where they are capable of transmitting actuating force to a particular crosspoint switch. Encoders used in typewriters, word processors, computer terminals and other keyboard arrangements will have actuators in the form of the usual keys. Keyboards of the type described have associated electrical circuitry for collecting and processing information from the encoder. This circuitry is conveniently provided in the form of a microcomputer. The microcomputer determines which crosspoint switches are depressed and supplies this information to the device in which the keyboard is incorporated.
One of the problems the processing circuitry must be capable of handling is the simultaneous closure of two or more crosspoint switches. This is a common situation which occurs when a human operator presses a second or third key before releasing a first or second key. This overlapping of closed switches is referred to as rollover.
There are basically three methods of handling a simultaneous switch closure situation. In the `no rollover` method only the first key stroke is recognized and provided as valid output data. Once a key is pressed no other key will be recognized until the first key has been released. In the `two-key rollover` method two keys simultaneously pressed are both recognized and provided as two valid and unique output codes, rather than losing one key as in the `no rollover` method. However, if more than two keys are pressed at the same time, only the first two keystrokes will be recognized and provided as valid output data. In the `N-key rollover` method any number of keys may be pressed simultaneously and each key will be correctly recognized and provided as valid output data. "N" represents a variable from one to a maximum number of keys.
The rollover method chosen for a particular keyboard encoder will depend on the particular application of the encoder. For example, `no rollover` is desirable in a specialized banking terminal or calculator where numerical entries must be carefully entered. In contrast, in a high-speed typing application a secretary is typically trained to type in 20 to 30 millisecond bursts (for example, quickly typing t-h-e). In this application the tendency to "roll" or glide from one key to another is inevitable. `N-key rollover` is desirable for this application since many keys may be pressed simultaneously. Studies have indicated that the use of N-key rollover reduces error rates by as much as 30% compared to no rollover or two-key rollover.
A major problem with N-key rollover in crosspoint encoders is the so-called phantom key or phantom switch situation. This will be explained in more detail below. Briefly, a phantom switch condition arises when three switches in a rectangular pattern in the encoder matrix are depressed. This results in an electrical path being formed which falsely indicates to the processing circuitry that the switch at the fourth corner of the rectangle is closed. If nothing were done to correct the phantom switch condition, the result would be the output as a valid key one which was never pressed.
The simplest solution to the phantom problem is to limit the encoder to no rollover or two-key rollover. But this eliminates the benefits of N-key rollover in high-speed typing. Another approach to the phantom switch problem could be to discard all keyboard data once a phantom condition is found anywhere in the matrix. This results in the rejection of the three keys involved in creating the phantom condition plus all other keys in the matrix, even though they were not involved in the phantom problem. Thus, a typist who inadvertently rests his or her fingers on a portion of the keyboard and thereby creates a phantom condition, will lose all keys pressed elsewhere in the matrix. Similarly, valid keys can be lost when a user strikes between two keys and actuates them both. This can lead to creation of a phantom condition and the above approach will reject all keys, whether or not they were potential phantom keys.
Phantom conditions can also be eliminated by isolating all of the crosspoint switches from one another by placing diodes between them. Or switches having inherent isolation such as magnetic hall-effect or capacitive sense switches could be used. But these approaches increase the cost of a keyboard and do not lend themselves to use with membrane type encoders.